package test.thinking.in.java;

/**
 * java局部变量必须初始化
 */
public class CommonTest1 {

    public static void main(String[] args) {
        new CommonTest1().a();
    }

    private void a() {
        int i;
//        System.out.println(i);
    }
}
/*
java局部变量必须被初始化！！
原因：局部变量在定义在方法内部，方法调用的次数未知。可能局部变量需要多次初始化。
jvm如果帮忙初始化的性能消耗比较大。并且局部变量在使用的过程中，业务上都会被初始化。所以无需jvm帮忙初始化。

未初始化的变量会在栈中存在一个空引用，不会指向任何物理内存。初始化的过程就是把实际分配的内存地址写入引用。
所以，未初始化的局部变量不使用时，编译并不会报错。
一旦调用未初始化变量，会去查找内存地址，所以会出现编译错误！

*/
